The present disclosure relates to networking. More particularly, a framework is described for managing the execution of external applications (e.g., third party applications) on a network device.
Conventionally, network devices were “closed” in that they did not allow external applications (e.g., third party applications (TPAs) that are developed by third parties and not by the provider of the network device) to be executed on a network device. More recently, some network devices have opened up slightly in that some external applications can be executed by a network device. However, these external applications are not integrated with the network device's operating system (sometimes referred to as the network operating system or NOS) that is responsible for the network device's functionality. This lack of integration leads to several problems. For example, while an external application can be executed on a network device, there is typically no way for a user of the network device to recover the application if the application crashes/terminates unexpectedly or becomes non-responsive.
As another example, many conventional network devices provide features for increasing the availability of the network devices. For example, a network device may provide redundant management modules to provide for high availability (HA) of the network device. During normal operations of the network device, one of the two management modules operates in active mode while the other operates in standby mode. Upon a failover, which may, for example, occur due to something going wrong on the active management module, the standby module becomes the active module and the previously active module may become the standby module. In this manner, by providing redundant modules, the functions performed by the network device can be performed uninterrupted. An external application may be loaded and executed by the active module, but when a failover occurs, that application is gone. There is no way to automatically restart the application on the new active module after the failover.
As yet another example, in a conventional network device, the NOS of the network device is unaware of external applications. As a result, the entire responsibility of loading and launching an application is on the user of the application. The user of the application has to manually attend to loading, launching, and management of the application.